/**
 * @file LyricTool.h
 * @brief 歌词处理工具类定义
 * @details 提供歌词解析、加载等基础功能
 */
#ifndef LYRIC_TOOL_H
#define LYRIC_TOOL_H

#include <gtk/gtk.h>
#include <glib.h>


/**
 * @struct _LyricLine
 * @brief 歌词行结构体
 * @details 表示一行歌词及其时间戳信息
 * @var _LyricLine::text 歌词文本内容
 * @var _LyricLine::timestamp 时间戳（毫秒）
 * @var _LyricLine::start_offset 起始偏移量
 * @var _LyricLine::end_offset 结束偏移量
 */
typedef struct _LyricLine {
    gchar* text;
    gdouble timestamp;
    gint start_offset;
    gint end_offset;
} LyricLine;


/**
 * @brief 解析歌词文本
 * @param lyric_text 歌词文本内容
 * @return 解析后的歌词行列表，按时间戳排序
 */
GList* parse_lyrics(gchar* lyric_text);

/**
 * @brief 释放歌词链表（每个节点为LyricLine*）
 * @param lyrics GList* 链表头
 */
void free_lyrics_list(GList* lyrics);

/**
 * @brief 从文件加载歌词
 * @param lyric_path 歌词文件路径
 * @return 加载并解析后的歌词行列表
 */
GList* load_lyrics(const gchar* lyric_path);

#endif